package com.shop.cereshop.agent.page.product;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * @description: TODO
 * @author lx
 * @date 2025/10/31 11:46
 * @version 1.0
 */
@Data
@ApiModel(value = "商品详情返回数据")
public class ProductDetailVO {

    /**
     * 商品轮播图
     */
    @ApiModelProperty(value = "商品轮播图")
    private List<String> productImage;

    /**
     * 商品主图
     */
    @ApiModelProperty(value = "商品主图")
    private String mainImage;

    /**
     * 商品名称
     */
    @ApiModelProperty(value = "商品名称")
    private String productName;

    /**
     * 商品简介
     */
    @ApiModelProperty(value = "商品简介")
    private String productBrief;

    /**
     * 商品描述
     */
    @ApiModelProperty(value = "商品描述")
    private String productText;

    /**
     * 商品销量
     */
    @ApiModelProperty(value = "商品销量")
    private Integer volume;

    /**
     * 商品售价
     */
    @ApiModelProperty(value = "商品售价")
    private BigDecimal price;

    /**
     * 商品原价
     */
    @ApiModelProperty(value = "商品原价")
    private BigDecimal originalPrice;

    /**
     * 是否收藏
     */
    @ApiModelProperty(value = "是否收藏")
    private Integer ifCollect;

    /**
     * 商品参数
     */
    @ApiModelProperty(value = "商品参数")
    private List<ProductParam> productParams;

    /**
     * 商品规格集合
     */
    @ApiModelProperty(value = "商品规格集合")
    private List<AgentProductSkuVO> skus;

    /**
     * 商品规格名集合
     */
    @ApiModelProperty(value = "商品规格名和规格值组合,用于前端展示不同规格名下的规格值")
    private Map<String, List<AgentSkuValueVO>> nameValueGroups;

    /**
     * 商品规格值快速查询
     */
    @ApiModelProperty(value = "商品规格值快速查询(value拼接串->sku详情),前端选择规格后可快速查看对应的sku数据")
    private Map<String, AgentProductSkuVO> skuQuickMap;

    /**
     * 商品规格名集合
     */
    @ApiModelProperty(value = "商品规格名集合")
    private Set<String> skuNames;
}
